home *** CD-ROM | disk | FTP | other *** search
Wrap
DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC)))) DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC)))) NNNNAAAAMMMMEEEE ddddllllcccclllloooosssseeee - close a shared object SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS cccccccc [ffffllllaaaagggg ...] ffffiiiilllleeee ... ----llllcccc [lllliiiibbbbrrrraaaarrrryyyy ...] ####iiiinnnncccclllluuuuddddeeee <<<<ddddllllffffccccnnnn....hhhh>>>> iiiinnnntttt ddddllllcccclllloooosssseeee((((vvvvooooiiiidddd ****hhhhaaaannnnddddlllleeee))));;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ddddllllcccclllloooosssseeee disassociates a shared object previously opened by ddddllllooooppppeeeennnn, ssssggggiiiiddddllllaaaadddddddd, or ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn from the current process. Once an object has been closed using ddddllllcccclllloooosssseeee, its symbols are no longer available to ddddllllssssyyyymmmm or to the program. All objects loaded automatically as a result of invoking ddddllllooooppppeeeennnn, on the referenced object [see ddddllllooooppppeeeennnn(3) ssssggggiiiiddddllllaaaadddddddd, or ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn] are also closed (however no object still open via any ddddllllooooppppeeeennnn, ssssggggiiiiddddllllaaaadddddddd, or ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn is closed till the last open _h_a_n_d_l_e is ddddllllcccclllloooosssseeeed). _h_a_n_d_l_e is the value returned by a previous invocation of ddddllllooooppppeeeennnn. SSSSEEEEEEEE AAAALLLLSSSSOOOO ddddlllleeeerrrrrrrroooorrrr(3), ddddllllooooppppeeeennnn(3), ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn(3), ssssggggiiiiddddllllaaaadddddddd(3), ddddllllssssyyyymmmm(3), ddddssssoooo(5). DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS If the referenced object was successfully closed, ddddllllcccclllloooosssseeee returns 0. If the object could not be closed, or if _h_a_n_d_l_e does not refer to an open object, ddddllllcccclllloooosssseeee returns a non-0 value. More detailed diagnostic information is available through ddddlllleeeerrrrrrrroooorrrr. NNNNOOOOTTTTEEEESSSS A successful invocation of ddddllllcccclllloooosssseeee does not guarantee that the objects associated with _h_a_n_d_l_e are actually removed from the address space of the process. Objects loaded by one invocation of ddddllllooooppppeeeennnn may also be loaded by another invocation of ddddllllooooppppeeeennnn. The same object may also be opened multiple times. An object is not removed from the address space until all references to that object through an explicit ddddllllooooppppeeeennnn invocation have been closed and all other objects implicitly referencing that object have also been closed. Once an object has been closed by ddddllllcccclllloooosssseeee, referencing symbols contained in that object can cause undefined behavior. Use of ddddllllcccclllloooosssseeee on a DSO can cause surprising side effects because ddddllllcccclllloooosssseeee forces many symbol's GOT entries to be reset for re-lazy-evaluation. A result of this is that previously-saved (by the program or a DSO) function pointers may hold obsolete or incorrect values. PPPPaaaaggggeeee 1111 DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC)))) DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC)))) Symbol lookups proceed in order on a linear list, and a DSO is not opened twice with the same version number (unless different dlopen paths make the DSO name appear different to _r_l_d). When multiple ssssggggiiiiddddllllaaaadddddddds are done and an earlier DSO is ddddllllcccclllloooosssseeeed this can change what symbol a call is resolved to and even result in unintentionally calling different routines (with the same name) from a single place in the program at different times. See the discussion of this in the ddddllllooooppppeeeennnn description under "NAMESPACE ISSUES". PPPPaaaaggggeeee 2222